<?php

// +----------------------------------------------------------------------
// | Copyright (c) 2018 http://blog.sina.com.cn/shuiyueju8/ All rights reserved.
// +----------------------------------------------------------------------
// | Author: 水月居 <singliang@163.com>
// +----------------------------------------------------------------------

namespace Disk\Model;
use Think\Model;
use Think\Upload;

/**
 * 文件模型
 * 负责文件的上传
 */
class DiskFilesModel extends Model{

    /**
     * 自动完成
     * @var array
     */
    protected $_auto = array(
        // array('status', 1, self::MODEL_INSERT),
        array('create_time', NOW_TIME, self::MODEL_INSERT),
    );

    /**
     * 文件上传
     * @param  array  $files   要上传的文件列表（通常是$_FILES数组）
     * @param  array  $setting 文件上传配置
     * @param  string $driver  上传驱动名称
     * @param  array  $config  上传驱动配置
     * @return array           文件上传成功后的信息
     */
    public function upload($files, $setting, $driver = 'local', $config = null){
        /* 上传文件 */
        // $setting['callback'] = array($this, 'isFile');
		$setting['removeTrash'] = array($this, 'removeTrash');
        // dump($setting); die;//dump($Upload);die;

        $Upload = new Upload($setting, $driver, $config);
       
        // foreach ($files as $key => $file) {
        //     $ext = strtolower($file['ext']);
        //     if(in_array($ext, array('jpg','jpeg','bmp','png'))){
        //         hook('dealPicture',$file['tmp_name']);
        //     }
        // }

        $info   = $Upload->upload($files);

        if($info){ //文件上传成功，记录文件信息
            foreach ($info as $key => &$value) {
                /* 已经存在文件记录 */
                if(isset($value['id']) && is_numeric($value['id'])){
                    continue;
                }

                /* 记录文件信息 */
                if(strtolower($driver)=='sae'){
                    $value['path'] = $config['rootPath'].'Picture/'.$value['savepath'].$value['savename']; //在模板里的url路径
                }else{
                    if(strtolower($driver) != 'local'){
                        $value['path'] =$value['url'];
                    }
                    else{
                        $value['path'] = (substr($setting['rootPath'], 1).$value['savepath'].$value['savename']);	//在模板里的url路径
                    }

                }

                $value['type'] = $driver;
                $value['file_name']=$value['name'];
                $value['file_type']=$value['ext'];
                $value['file_size']=$value['size'];
                $value['user_name']=session('loginname');


                if($this->create($value) && ($id = $this->add())){
                    $value['id'] = $id;
                } else {
                    //TODO: 文件上传成功，但是记录文件信息失败，需记录日志
                    unset($info[$key]);
                }
            }

            foreach($info as &$t_info){
                if($t_info['type'] =='local'){
                    $t_info['path']=get_pic_src($t_info['path']);
                }
                else{
                    $t_info['path']=$t_info['path'];
                }


            }
            // dump(getRootUrl());
            dump($info);
            // exit;

            return $info; //文件上传成功
        } else {
            $this->error = $Upload->getError();
            return false;
        }
    }
     
	 

}